package com.zsrt.day20170505.stack;
/**
*@author jzh
*@创建时间 2017年5月5日下午2:38:44
*类说明：用链表模拟栈
*/
public class Stack {
	
	private Node head;
	
	
	
	public Stack(Node head) {
		this.head = head;
	}



	/**
	 * 入栈
	 * @param node
	 */
	public void push(Node node){
		Node p=this.head;
		
		node.setNext(p.getNext());
		p.setNext(node);
	}
	
	

	/**
	 * 出栈  1：删除1个节点   2：拿到被你删除的节点  3：为了把证出栈的效率  拿的都是头结点的下一个节点
	 * @return
	 */
	public Node pop(){
		Node p=this.head;
		Node jieguo=p.getNext();
		if(p.getNext()!=null){
			p.setNext(p.getNext().getNext());
		}
		return jieguo;
	}
	
	/**
	 * 打印所有的节点
	 */
	public void printStack(){
		Node p=this.head;
		while(p.getNext()!=null){
			System.out.println(p.getNext().getData());
			p=p.getNext();
		}
		
	}




}
